function drawCanvas() {
    var e = document.getElementById('canvas')
    var timer

    function c(c) {
        this.size = 2 * Math.random(), this.speed = .07 * Math.random(), this.x = c.x, this.y = c.y
    }

    function n() {
        this.reset()
    }

    function t() {
        a.fillStyle = '#090723', a.fillRect(0, 0, s, o)
        var c = 'rgba(255, 255, 255, 0.5)'
        a.fillStyle = c, a.strokeStyle = c
        for (var n = l.length; n--;) l[n].update()
        timer = window.requestAnimationFrame(t)
    }

    !function () {
        var c = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || function (c) {
            window.setTimeout(c, 1e3 / 60)
        }
        window.requestAnimationFrame = c
    }()
    var i = e, a = i.getContext('2d'), s = window.innerWidth, o = document.documentElement.clientHeight || document.body.clientHeight
    i.width = s, i.height = o, a.fillStyle = '#090723', a.fillRect(0, 0, s, o), c.prototype.reset = function () {
        this.size = 2 * Math.random(), this.speed = .05 * Math.random(), this.x = s, this.y = Math.random() * o
    }, c.prototype.update = function () {
        this.x -= this.speed, this.x < 0 ? this.reset() : a.fillRect(this.x, this.y, this.size, this.size)
    }, n.prototype.reset = function () {
        this.x = Math.random() * s, this.y = 0, this.len = 80 * Math.random() + 10, this.speed = 8 * Math.random() + 4, this.size = 1 * Math.random() + .1, this.waitTime = (new Date).getTime() + 3e3 * Math.random() + 500, this.active = !1
    }, n.prototype.update = function () {
        this.active ? (this.x -= this.speed, this.y += this.speed, this.x < 0 || this.y >= o ? this.reset() : (a.lineWidth = this.size, a.beginPath(), a.moveTo(this.x, this.y), a.lineTo(this.x + this.len, this.y - this.len), a.stroke())) : this.waitTime < (new Date).getTime() && (this.active = !0)
    }
    for (var l = [], r = 0; o > r; r += 4) l.push(new c({x: Math.random() * s, y: Math.random() * o}))
    l.push(new n), l.push(new n), t()
}